<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // Array.prototype.myMap=function myMap(fn){
        //     //1.this--arr  2.参数 fn
        //     var newarr=[];
        //     for(var i=0;i<this.length;i++){
        //         newarr.push(fn(this[i],i,this))
        //     }
        //     return newarr;
        // }

        // var arr=[1,2,3];
        // //返回值新数组  循环arr
        // //新数组里面的值是函数执行后的结果
        // var res=arr.myMap((item,index,arr)=>{
        //       return item+10;
        // })

        // console.log(res);


        // var x = 10;
        // function fn() {
        //     console.log(x);//undefined
        //     var x = 20;
        // }
        // fn();
        // console.log(x);//10

        // var x = 10;
        // function fn() {
        //     console.log(x);//10
        //     x = 20;
        // }
        // fn();
        // console.log(x);//20

        // let x = 10;
        // function fn() {
        //     console.log(x);//报错
        //     let x = 20;
        // }
        // fn();
        // console.log(x);

        // //x-1  y-2-6  z-3-6-7  fn--0x001
        // var x = 1,
        //     y = 2,
        //     z = 3;
        // function fn(x) {
        //     //x-2-4 y-und-5
        //     console.log(x, y, z);//2,und,3
        //     x = 4;
        //     var y = 5;
        //     z = 6;
        //     console.log(x, y, z);//4,5,6
        //     return z++;//z++ -- 6  z--7
        // }
        // y = fn(y);//  z--6  y=z++
        // console.log(x, y, z);//1 6 7

        // var i = 5;
        // var j = i++;
        // console.log(i,j);//6 5

        // a-und  fn--0x001---0x002
    //     var a=1;
    //     function fn(x) {
    //         // x--9  i--und--0
    //         // x--11  i--und--0
    //         for(var i=0;i<=x;i++) {//i<=9  i<=11
    //             //i=0  x--9
    //             //i=0  x--11--12
    //             if(x%3) {//9%3---0  false  11%3---2  true
    //                 fn = function(y){//0x002
    //                     //上级作用域 0x001
    //                     // y--12 
    //                     console.log(y - (++x));//0
    //                 };
    //                 break;
    //             }
    //         }
    //     }
    //    fn(9); //0x001(9)
    //    fn(11);// 0x001(11)
    //    fn(12);//0x002(12)---0

    // // A--0x001--0x002  a-0 b-0
    // let a=0,
    // b=0;
    // function A(a){
    //     // a-1-2
    //     A=function(b){//0x002
    //         //上级作用域---0x001
    //         //b-2--3
    //         alert(a+b++);//2+(b++)   b++--2  2+2--4
    //     };
    //     alert(a++);//a++--1  a--2
    // }
    // A(1);//0x001(1)---1
    // A(2);//0x002(2)---2
    </script>
</body>
</html>